#include "diapre.h"
#include "ui_diapre.h"
#include <QDateTime>
#include <QDebug>


DiaPre::DiaPre(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::DiaPre)
{
    ui->setupUi(this);
    this->setWindowFlags(Qt::Widget);
    this->slotCurrentMonth();
    connect(this->ui->dte_from,SIGNAL(dateTimeChanged(QDateTime)),this,SLOT(slotDTchanged()));
    connect(this->ui->dte_to,SIGNAL(dateTimeChanged(QDateTime)),this,SLOT(slotDTchanged()));
}

DiaPre::~DiaPre()
{
    // уходя тушите всех -)

    // очищаем табличку

    for(int i =  this->ui->tableWidget->rowCount(); i >=0 ; i--){
        QTableWidgetItem * wit = this->ui->tableWidget->takeItem(i,1);
        delete wit;
        wit = this->ui->tableWidget->takeItem(i,0);
        delete wit;
    }

    delete ui;
}

void DiaPre::slotCurrentMonth(){
    QDateTime dtem,dten;
    QDate aa;
    aa.setYMD(QDate::currentDate().year(),QDate::currentDate().month(),1);
    dtem.setDate(aa);
    QTime tt;
    tt.setHMS(00,00,01);
    dtem.setTime(tt);
    aa.setYMD(QDate::currentDate().year(),QDate::currentDate().month(),QDate::currentDate().daysInMonth());
    tt.setHMS(23,59,59);
    dten.setDate(aa);
    dten.setTime(tt);

    this->ui->dte_from->setDateTime(dtem);
    this->ui->dte_to->setDateTime(dten);

}

void DiaPre::slotDTchanged(){
    emit this->sigDTchanged(this->ui->dte_from->dateTime().toString("yyyy-MM-dd hh:mm:ss"),
                            this->ui->dte_to->dateTime().toString("yyyy-MM-dd hh:mm:ss"));
}

bool DiaPre::startExec(){
    // меняем дату
    this->slotDTchanged();
    // блокируем диалог
    this->setEnabled(false);
    // показываем диалог
    return this->exec();

}

void DiaPre::slotSetList(QStringList list){
    // переинициализируем список отображаемых событий
    //qDebug()()<<"list - "<<list;
    // очищаем табличку

    for(int i =  this->ui->tableWidget->rowCount(); i >=0 ; i--){
        QTableWidgetItem * wit = this->ui->tableWidget->takeItem(i,1);
        delete wit;
        wit = this->ui->tableWidget->takeItem(i,0);
        delete wit;
    }
    this->ui->tableWidget->setRowCount(list.size()/2);
    int currentRow=0;
    for( int i = 0 ; i < list.size(); i=i+2){
        QTableWidgetItem * wit = new QTableWidgetItem;
        wit->setText(list.at(i));
        this->ui->tableWidget->setItem(currentRow,0,wit);
        wit = new QTableWidgetItem;
        wit->setText(list.at(i+1));
        this->ui->tableWidget->setItem(currentRow,1,wit);
        currentRow++;
    }
    if(this->ui->tableWidget->rowCount() == 0){
        this->ui->btn_ok->setEnabled(false);
    }else{
        this->ui->tableWidget->setCurrentCell(0,0);
        this->ui->btn_ok->setEnabled(true);
    }
    this->ui->tableWidget->resizeColumnsToContents();
    this->ui->tableWidget->horizontalHeader()->setStretchLastSection(true);
    // разблокируем диалог
    this->setDisabled(false);
}


void DiaPre::slotOK(){
    // юзверь ткнул ОК - значит надо запросить данные по этому событию
    this->setEnabled(false);
    emit this->sigEventRequest(this->ui->tableWidget->item(this->ui->tableWidget->currentRow(),1)->text(),
                               this->ui->tableWidget->item(this->ui->tableWidget->currentRow(),0)->text());

}

void DiaPre::slotFinish(){
    emit this->accept();
}
